#ifndef CAPAASINCRONA_H
#define CAPAASINCRONA_H

#include <QMutex>
#include "capa.h"

class VISOR2D_EXPORT CapaDibujo : public Capa
{
    Q_OBJECT
public:
    CapaDibujo();
    virtual ~CapaDibujo();

    virtual void dibujarPartesEstaticas(QPainter* painter, const QRectF& encuadreReal, int anchoPixeles, int altoPixeles) = 0;
    virtual void dibujarPartesDinamicas(QPainter* painter, const QRectF& encuadreReal, int anchoPixeles, int altoPixeles) = 0;

    void dibujarImagen(QPainter* painter, const QRectF& encuadreReal, int anchoPixeles, int altoPixeles);
    void pedirImagen(const QRectF& encuadreReal, int anchoPixeles, int altoPixeles);
    bool isProcesando() { return false; }

    void limpiar() { imagen = QImage(); }

    QImage getImagenActual(QRectF& encuadreReal) {
        encuadreReal = this->encuadreReal;
        return imagen;
    }

protected:
    QImage imagen;
    QRectF encuadreReal;
};

#endif // CAPAASINCRONA_H
